import 'data.dart';

//完成第一阶段页面，只有3条数据
final List<Meal> meals = data.map((Map obj) {
  return Meal(obj);
}).toList();

// 每一页返回20条数据
const num_data_per_page = 20;

//写一个模拟函数，每次返回20条数据，相当于一页的数据量
Future mealsForPage (int page) async {
  // calculate a result first
  List<Meal> result = <Meal>[];
  for (var i=0; i<num_data_per_page; i++) {
    result.add(
      Meal(data[ i % 3 ]) // 只有3条原始数据，所以直接重复，只修改id
        ..id = i + 1 + page * num_data_per_page
    );
  }

  // 模拟异步，等半秒钟，返回
  await Future.delayed(Duration(microseconds: 500));
  return result;
}

// 美食类， 接收并解析data数据
class Meal {
  int id;
  String name;
  double price;
  String? url;
  String mealType;
  bool isCollect;

  Meal(Map data) :
    id = data['id'] ?? 0,
    name = data['name'] ?? '无名称',
    price = data['price'] ?? 0.0 ,
    url = data['url'],
    mealType = data['mealType'] ?? '当日午餐',
    isCollect = data['isCollect'] ?? false ;
}
